home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / tangosources.lha / misc_sources / intro1.s < prev    next >
Encoding:
Text File  |  2008-06-03  |  12.1 KB  |  421 lines

  1. *****************************************************************************
  2. *                            XENTRIX INTRO:1                                    *
  3. *                                                                            *
  4. * CODED BY       : TANGO                                                    *
  5. * PROGRAM STARTED:11/2/91                                                    *
  6. * LAST EDITED    :11/2/91                                                    *
  7. *                                                                            *
  8. *****************************************************************************
  9.  
  10.     section ste,code_c
  11.     incdir    df1:
  12.     opt c-
  13.     include gamemacros
  14.     
  15.     
  16.     killsys
  17.  
  18.     move.l    #$70000,a0
  19.     move.l    #10240,d2
  20. cloop:
  21.     clr.l    (a0)+
  22.     dbf        d2,cloop
  23.  
  24.     move.l    #$60000,a0
  25.     move.l    #10240,d2
  26. dloop:
  27.     clr.l    (a0)+
  28.     dbf        d2,dloop
  29.  
  30.     jsr        cyb_init                ; initialise music
  31.     move.l    #newcop,$dff080
  32.     lea        custom,a5
  33. mouse:
  34.     move.l    vposr(a5),d0            
  35.     and.l    #$1ff00,d0
  36.     cmp.l    #$00100,d0    
  37.     bne.s    mouse
  38.     bsr        doform
  39.     bsr        clear
  40.     bsr        scroller
  41.     bsr        copy
  42.     save_all
  43.     jsr        cyb_music
  44.     return_all
  45.     btst    #6,$bfe001
  46.     bne.s    mouse
  47.     ressys
  48.     clr.l    d0
  49.     rts
  50.  
  51.  
  52. *****************************************************************************
  53. *                            BLIT THE COPPER BARS                            *
  54. *****************************************************************************
  55.  
  56. blitbar:
  57.     lea        coltab(pc),a1
  58.     lea        dest+6(pc),a2                ; point to colour 
  59.     lea        bltapth(a5),a3
  60.     lea        bltdpth(a5),a4
  61.     lea        bltsize(a5),a0
  62.     lea        bltcon0(a5),a6
  63.     move.l    #-1,d6
  64.     moveq    #0,d4
  65.     moveq    #6,d5
  66.     add.l    d1,a2                        ; d1 holds position of bar
  67.     blitwait
  68.     move.w    d4,bltamod(a5)
  69.     move.w    d5,bltdmod(a5)                ; 6  (3words to next colour)
  70.     move.l    d6,bltafwm(a5)
  71.     move.l    a1,(a3)                        ; source
  72.     move.l    a2,(a4)                        ; dest
  73.     move.l    #$09f00000,(a6)                ; minterm D=A
  74.     move.w    #32<<6!1,(a0)                ; blitsize
  75.     rts
  76.  
  77.  
  78. *****************************************************************************
  79. *                    MOVE THE COPPER BARS FROM A SINE TABLE                    *
  80. *****************************************************************************
  81.  
  82. doform:
  83.     move.l    bsinptr(pc),a2    ; pointer to sine table
  84.     move.l    tabptr(pc),a0    ; pointer to table
  85.     move.w    (a0)+,d7        ; amount of bars
  86. barlooper:
  87.     move.w    (a0)+,d1        ; position in sinetab
  88.     add.w    d1,d1            ; even
  89.     and.w    #$fe,d1
  90.     move.w    (a2,d1),d1        ; got position
  91.     asl.l    #3,d1            ; times by 8 for next line down!
  92.     move.w    (a0)+,d2
  93.     add.w    d2,-4(a0)        ; speed
  94.     save_all
  95.     bsr        blitbar
  96.     return_all
  97.     dbf        d7,barlooper
  98.     rts
  99.     
  100.  
  101. *****************************************************************************
  102. *                          BLIT SHIFT SCROLL ROUTINE                            *
  103. *****************************************************************************
  104.  
  105. scroller:
  106.     move.l    #-1,bltafwm(a5)
  107.     tst.l    scrolled                ;have we scrolled 16 pixels?
  108.     bne        scrollon                ;no
  109.     move.l    #15,scrolled            ;yes, reset
  110.     sub.l    d6,d6
  111.     lea        table(pc),a4
  112.     move.l    scrptr(pc),a3
  113.     move.b    (a3),d6
  114.     cmp.b    #255,d6                    ;end of scroll text?
  115.     bne.s    anotover                ;no
  116.     move.l    #scrolltext,scrptr
  117.     sub.l    d6,d6
  118.     rts
  119. anotover:
  120.     sub.b    #32,d6                    ;convert
  121.     add.w    d6,d6
  122.     move.w    (a4,d6),d6                ;got letter
  123.     add.l    #1,scrptr                ;update
  124.     blitwait
  125.     move.l    #$09f00000,bltcon0(a5)    ;minterm d=a
  126.     move.l    #font,a0
  127.     add.l    d6,a0
  128.     move.l    a0,bltapth(a5)
  129.     move.w    #38,bltamod(a5)
  130.     move.w    #46,bltdmod(a5)            ;screen is 2 words bigger
  131.     move.l    #$70000,bltdpth(a5)
  132.     move.w    #16<<6!1,bltsize(a5)
  133. scrollon:    
  134.     blitwait
  135.     move.w    #0,bltamod(a5)
  136.     move.w    #0,bltdmod(a5)
  137.     move.l    #$70000,bltdpth(a5)        ;coarse scroller
  138.     move.l    #$70002,bltapth(a5)
  139.     move.l    #$f9f00000,bltcon0(a5)
  140.     move.w    #16<<6!22,bltsize(a5)
  141.     sub.l    #1,scrolled
  142.     rts
  143.  
  144. copy:
  145.     lea        bltapth(a5),a1            ;source
  146.     lea        bltdpth(a5),a2            ;dest
  147.     lea        bltbpth(a5),a3            ;dest
  148.     lea        bltsize(a5),a4            ;blitsize
  149.     lea        bltcon0(a5),a6
  150.     move.w    #$3fe,d1
  151.     move.w    #22,d6
  152.     move.w    #46,d2                    ;modulo
  153.     move.w    #16<<6!1,d3                ;bltsize
  154.     move.l    #$0dfc0000,d7
  155.     move.l    #$70000,d4
  156.     move.l    screen_base,d5
  157.     move.l    #-1,bltalwm(a5)
  158.     move.w    d2,bltamod(a5)
  159.     move.w    d2,bltbmod(a5)
  160.     move.w    d2,bltdmod(a5)
  161.     add.w    #12,sinptr+2
  162.     and.l    d1,sinptr
  163.     lea        sintab(pc),a0
  164.     add.l    sinptr,a0
  165.     lea        bltafwm(a5),a5
  166. brloop:
  167.     move.w    #$8000,d1                ;mask
  168. coploop:
  169.     rept    16
  170.     move.w    d1,(a5)
  171.     add.w    (a0),d5
  172.     move.l    d4,(a1)                    ;source
  173.     move.l    d5,(a2)                    ;dest d
  174.     move.l    d5,(a3)                    ;dest b
  175.     sub.w    (a0)+,d5
  176.     move.l    d7,(a6)
  177.     move.w    d3,(a4)                    ;blitsize
  178.     ror.w    d1
  179.     endr
  180.     addq.w    #2,d4                    ;next along
  181.     addq.w    #2,d5                    ;next along
  182.     dbf        d6,brloop
  183.     lea        custom,a5
  184.     rts
  185.  
  186.  
  187. clear:
  188.     eor.w    #$4000,a1l+2
  189.     eor.w    #$4000,screen_base+2
  190.     move.l    screen_base,a1                    ; dst
  191.     blitwait
  192.     move.l    #$01f00000,bltcon0(a5)
  193.     move.l    #-1,bltafwm(A5)
  194.     move.w    #0,bltdmod(a5)
  195.     move.l    a1,bltdpth(A5)
  196.     move.w    #117*64+24,bltsize(a5)
  197.     Movem.l    a0-a6/d0-d7,-(a7)        
  198.     Movem.l    RegFiller(pc),a1-a6/d0-d7
  199.     move.l    screen_base,a0
  200.     add.w    #10368,a0
  201.     Rept    93                
  202.     Movem.l    a1-a6/d0-d7,-(a0)
  203.     Endr                    
  204.     Movem.l    (a7)+,a0-a6/d0-d7
  205.     Rts
  206. RegFiller
  207.     Dcb.l    16,0
  208.  
  209.     
  210. scrolled:
  211.     dc.l    15
  212. scrptr:
  213.     dc.l    scrolltext
  214. scrolltext:
  215.     DC.B    '   A NEW GROUP IS BORN     THE NAME IS....      '
  216.     DC.B    '  XENTRIX '
  217.     DC.B    '       WHICH WAS FORMED FROM TWO EX-MEMBERS OF CRYPTIC'
  218.     DC.B    ' TANGO AND SMURF.    OUR GLORY MEMBERS SO FAR ARE:    '
  219.     DC.B    ' TANGO:CODE-SWAPPER       SMURF:SWAPPER-COMPILER      '
  220.     DC.B    ' CARL:SWAPPER-COMPILER      FERRET:CODER-GFX-SFX      '
  221.     DC.B    '   IF YOU WANT TO JOIN OUR CREW THEN SEND TO:         '
  222.     DC.B    'TANGO, 368 HIGHFIELD ROAD, FARNWORTH, BOLTON. LANCASHIRE.'
  223.     DC.B    '  BL4-OPG.   ENGLAND!    OR YOU CAN PHONE TANGO ON... '
  224.     DC.B    '  0204-795267 (AFTER 5PM)       LOOK OUT FOR US AT THE'
  225.     DC.B    ' ANARCHY PARTY, UNTIL THEN KEEP COOL!!!           '
  226.     DC.B    255
  227.     even
  228.  
  229.  
  230. *****************************************************************************
  231. *                    NOISETRACKER PLAY ROUTINE TO BE INCLUDED                *
  232. *****************************************************************************
  233.  
  234. play_routine:
  235.  
  236.     include    sfx/nt.s
  237.  
  238.  
  239. *****************************************************************************
  240. *                                NEW COPPER LIST                                *
  241. *****************************************************************************
  242.  
  243. newcop:
  244.     cmove    color01,$f5f
  245.     cmove    bpl1mod,2    
  246.     cmove    bpl2mod,2    
  247.     cmove    bplcon0,$1200
  248.     cmove    diwstrt,$2c81
  249.     cmove    diwstop,$2cc1
  250.     cmove    ddfstrt,$28
  251.     cmove    ddfstop,$d8
  252.     cmove    bpl1pth,$0007
  253. a1l    cmove    bpl1ptl,$1000
  254. a    set    80
  255. dest:
  256.     rept    170
  257.     dc.b    a,$09,$ff,$fe
  258.     dc.w    $180,$00            ; CHANGE THIS COL!!!
  259. a    set        a+1
  260.     endr
  261.     end_copper
  262.  
  263.     
  264. *****************************************************************************
  265. *                                CHARACTER TABLE                                *
  266. *****************************************************************************
  267.  
  268. table:
  269.     dc.w    0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38
  270.     dc.w    (16*40),2+(16*40),4+(16*40),6+(16*40),8+(16*40),10+(16*40)
  271.     dc.w    12+(16*40),14+(16*40),16+(16*40),18+(16*40),20+(16*40),22+(16*40)
  272.     dc.w    24+(16*40),26+(16*40),28+(16*40),30+(16*40),32+(16*40),34+(16*40)
  273.     dc.w    36+(16*40),38+(16*40)
  274.     dc.w    (16*80),2+(16*80),4+(16*80),6+(16*80),8+(16*80),10+(16*80)
  275.     dc.w    12+(16*80),14+(16*80),16+(16*80),18+(16*80),20+(16*80),22+(16*80)
  276.     dc.w    24+(16*80),26+(16*80),28+(16*80),30+(16*80),32+(16*80),34+(16*80)
  277.     dc.w    36+(16*80),38+(16*80)
  278.     even
  279.  
  280. screen_base:
  281.     dc.l    $71000
  282. sinptr:
  283.     dc.l    sintab
  284. sintab:    
  285.     rept    3
  286.     dc.w    200*48,200*48,200*48,200*48,200*48,200*48,200*48,200*48
  287.     dc.w    200*48,199*48,199*48,199*48,199*48,199*48,199*48,198*48
  288.     dc.w    198*48,198*48,198*48,197*48,197*48,197*48,196*48,196*48
  289.     dc.w    196*48,195*48,195*48,195*48,194*48,194*48,193*48,193*48
  290.     dc.w    192*48,192*48,191*48,191*48,190*48,190*48,189*48,189*48
  291.     dc.w    188*48,188*48,187*48,186*48,186*48,185*48,184*48,184*48
  292.     dc.w    183*48,182*48,182*48,181*48,180*48,180*48,179*48,178*48
  293.     dc.w    177*48,177*48,176*48,175*48,174*48,173*48,172*48,172*48
  294.     dc.w    171*48,170*48,169*48,168*48,167*48,166*48,165*48,164*48
  295.     dc.w    163*48,162*48,162*48,161*48,160*48,159*48,158*48,157*48
  296.     dc.w    156*48,155*48,153*48,152*48,151*48,150*48,149*48,148*48
  297.     dc.w    147*48,146*48,145*48,144*48,143*48,142*48,141*48,139*48
  298.     dc.w    138*48,137*48,136*48,135*48,134*48,133*48,131*48,130*48
  299.     dc.w    129*48,128*48,127*48,125*48,124*48,123*48,122*48,121*48
  300.     dc.w    120*48,118*48,117*48,116*48,115*48,113*48,112*48,111*48
  301.     dc.w    110*48,109*48,107*48,106*48,105*48,104*48,102*48,101*48
  302.     dc.w    100*48,99*48,98*48,96*48,95*48,94*48,93*48,91*48
  303.     dc.w    90*48,89*48,88*48,87*48,85*48,84*48,83*48,82*48
  304.     dc.w    80*48,79*48,78*48,77*48,76*48,75*48,73*48,72*48
  305.     dc.w    71*48,70*48,69*48,67*48,66*48,65*48,64*48,63*48
  306.     dc.w    62*48,61*48,59*48,58*48,57*48,56*48,55*48,54*48
  307.     dc.w    53*48,52*48,51*48,50*48,49*48,48*48,46*48,45*48
  308.     dc.w    44*48,43*48,42*48,41*48,40*48,39*48,38*48,38*48
  309.     dc.w    37*48,36*48,35*48,34*48,33*48,32*48,31*48,30*48
  310.     dc.w    29*48,28*48,28*48,27*48,26*48,25*48,24*48,23*48
  311.     dc.w    23*48,22*48,21*48,20*48,20*48,19*48,18*48,18*48
  312.     dc.w    17*48,16*48,16*48,15*48,14*48,14*48,13*48,12*48
  313.     dc.w    12*48,11*48,11*48,10*48,10*48,9*48,9*48,8*48
  314.     dc.w    8*48,7*48,7*48,6*48,6*48,5*48,5*48,5*48
  315.     dc.w    4*48,4*48,4*48,3*48,3*48,3*48,2*48,2*48
  316.     dc.w    2*48,2*48,1*48,1*48,1*48,1*48,1*48,1*48
  317.     dc.w    0*48,0*48,0*48,0*48,0*48,0*48,0*48,0*48
  318.     dc.w    0*48,0*48,0*48,0*48,0*48,0*48,0*48,0*48
  319.     dc.w    0*48,1*48,1*48,1*48,1*48,1*48,1*48,2*48
  320.     dc.w    2*48,2*48,2*48,3*48,3*48,3*48,4*48,4*48
  321.     dc.w    4*48,5*48,5*48,5*48,6*48,6*48,7*48,7*48
  322.     dc.w    8*48,8*48,9*48,9*48,10*48,10*48,11*48,11*48
  323.     dc.w    12*48,12*48,13*48,14*48,14*48,15*48,16*48,16*48
  324.     dc.w    17*48,18*48,18*48,19*48,20*48,20*48,21*48,22*48
  325.     dc.w    23*48,23*48,24*48,25*48,26*48,27*48,28*48,28*48
  326.     dc.w    29*48,30*48,31*48,32*48,33*48,34*48,35*48,36*48
  327.     dc.w    37*48,38*48,38*48,39*48,40*48,41*48,42*48,43*48
  328.     dc.w    44*48,45*48,47*48,48*48,49*48,50*48,51*48,52*48
  329.     dc.w    53*48,54*48,55*48,56*48,57*48,58*48,59*48,61*48
  330.     dc.w    62*48,63*48,64*48,65*48,66*48,67*48,69*48,70*48
  331.     dc.w    71*48,72*48,73*48,75*48,76*48,77*48,78*48,79*48
  332.     dc.w    80*48,82*48,83*48,84*48,85*48,87*48,88*48,89*48
  333.     dc.w    90*48,91*48,93*48,94*48,95*48,96*48,98*48,99*48
  334.     dc.w    100*48,101*48,102*48,104*48,105*48,106*48,107*48,109*48
  335.     dc.w    110*48,111*48,112*48,113*48,115*48,116*48,117*48,118*48
  336.     dc.w    120*48,121*48,122*48,123*48,124*48,125*48,127*48,128*48
  337.     dc.w    129*48,130*48,131*48,133*48,134*48,135*48,136*48,137*48
  338.     dc.w    138*48,139*48,141*48,142*48,143*48,144*48,145*48,146*48
  339.     dc.w    147*48,148*48,149*48,150*48,151*48,152*48,154*48,155*48
  340.     dc.w    156*48,157*48,158*48,159*48,160*48,161*48,162*48,162*48
  341.     dc.w    163*48,164*48,165*48,166*48,167*48,168*48,169*48,170*48
  342.     dc.w    171*48,172*48,172*48,173*48,174*48,175*48,176*48,177*48
  343.     dc.w    177*48,178*48,179*48,180*48,180*48,181*48,182*48,182*48
  344.     dc.w    183*48,184*48,184*48,185*48,186*48,186*48,187*48,188*48
  345.     dc.w    188*48,189*48,189*48,190*48,190*48,191*48,191*48,192*48
  346.     dc.w    192*48,193*48,193*48,194*48,194*48,195*48,195*48,195*48
  347.     dc.w    196*48,196*48,196*48,197*48,197*48,197*48,198*48,198*48
  348.     dc.w    198*48,198*48,199*48,199*48,199*48,199*48,199*48,199*48
  349.     dc.w    200*48,200*48,200*48,200*48,200*48,200*48,200*48,200*48
  350.     endr
  351.  
  352.  
  353. *****************************************************************************
  354. *           COLOURS FOR BAR (NOTE BAR IS 34 LINES, HENCE 34 COLOURS!)        *
  355. *****************************************************************************
  356.  
  357. coltab:
  358.     dc.w    $000,$000,$100,$200,$300,$400,$500,$600,$700
  359.     dc.w    $800,$900,$a00,$b00,$c00,$d00,$e00,$f00
  360.     dc.w    $e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600
  361.     dc.w    $500,$400,$300,$200,$100,$000
  362.  
  363.     
  364. *****************************************************************************
  365. *                             BAR FORMATIONS!                                *
  366. *****************************************************************************
  367.  
  368. tabptr:
  369.     dc.l    tab
  370. tab:
  371.     dc.w    10-1                ; no of bars to blit
  372.     dc.w    10,1                ; offset to sine tab and speed
  373.     dc.w    20,1                ; offset to sine tab and speed
  374.     dc.w    30,1
  375.     dc.w    40,1
  376.     dc.w    50,1
  377.     dc.w    60,1
  378.     dc.w    70,1
  379.     dc.w    80,1
  380.     dc.w    90,1
  381.     dc.w    100,1
  382.  
  383.  
  384. *****************************************************************************
  385. *                       THE MEGA SINE TABLE FOR THE BARS                        *
  386. *****************************************************************************
  387.  
  388. bsinptr:    
  389.         dc.l    bsintab
  390. bsintab:
  391.     dc.w    120,120,120,119,119,118,117,116
  392.     dc.w    115,114,113,111,110,108,106,104
  393.     dc.w    102,100,98,96,93,91,88,86
  394.     dc.w    83,80,77,75,72,69,66,63
  395.     dc.w    60,57,54,51,48,45,43,40
  396.     dc.w    37,34,32,29,27,24,22,20
  397.     dc.w    18,16,14,12,10,9,7,6
  398.     dc.w    5,4,3,2,1,1,0,0
  399.     dc.w    0,0,0,1,1,2,3,4
  400.     dc.w    5,6,7,9,10,12,14,16
  401.     dc.w    18,20,22,24,27,29,32,34
  402.     dc.w    37,40,43,45,48,51,54,57
  403.     dc.w    60,63,66,69,72,75,77,80
  404.     dc.w    83,86,88,91,93,96,98,100
  405.     dc.w    102,104,106,108,110,111,113,114
  406.     dc.w    115,116,117,118,119,119,120,120
  407.     even
  408.     
  409.  
  410. *****************************************************************************
  411. *                                    BINARIES                                *
  412. *****************************************************************************
  413.  
  414. font:
  415.     incbin    gfx/font.bin
  416.     even
  417. cyb_data:
  418.     incbin    "sfx/mod.task iii"
  419.     even
  420.  
  421.